package Ms.entity.enums;


import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;

/**
 * 管理员账户状态枚举
 */
@Getter
public enum UserStatus {
    ACTIVE(1, "正常"),
    DISABLED(0, "已禁用"),
    LOCKED(-1, "已锁定");

    @EnumValue  // 标记存储到数据库的值（MyBatis-Plus注解）
    private final Integer code;

    @JsonValue  // 标记序列化时输出的值（Jackson注解）
    private final String desc;

    UserStatus(Integer code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    /**
     * 通过code获取枚举实例（用于数据库值反序列化）
     */
    public static UserStatus of(Integer code) {
        for (UserStatus status : UserStatus.values()) {
            if (status.getCode().equals(code)) {
                return status;
            }
        }
        throw new IllegalArgumentException("无效的管理员状态码: " + code);
    }
}
